4326f5cc4976ffa7e3b4f35519e1af63d7464c53,revapi/src/main/java/org/revapi/Revapi.java,Revapi,analyze,#AnalysisContext#,113

Before Change



        initialize(analysisContext, availableFilters);
        initialize(analysisContext, availableReporters);
        initialize(analysisContext, availableApiAnalyzers);
        initialize(analysisContext, availableTransforms);

        TIMING_LOG.debug("Initialization complete.");

        matchingTransformsCache.clear();

        for (ApiAnalyzer analyzer : availableApiAnalyzers) {
            analyzeWith(analyzer, analysisContext.getOldApi(), analysisContext.getNewApi());
        }
    }

After Change



        Map<ElementFilter, AnalysisContext> filters = splitByConfiguration(analysisContext, availableFilters);
        Map<Reporter, AnalysisContext> reporters = splitByConfiguration(analysisContext, availableReporters);
        Map<ApiAnalyzer, AnalysisContext> analyzers = splitByConfiguration(analysisContext, availableApiAnalyzers);
        Map<DifferenceTransform<?>, AnalysisContext> transforms = splitByConfiguration(analysisContext, availableTransforms);

        AnalysisResult.Extensions extensions = new AnalysisResult.Extensions(analyzers, filters, reporters, transforms);

        StreamSupport.stream(extensions.spliterator(), false)
                .map(e -> (Map.Entry<Configurable, AnalysisContext>) e)
                .forEach(e -> e.getKey().initialize(e.getValue()));

        TIMING_LOG.debug("Initialization complete.");

        matchingTransformsCache.clear();

        Throwable error = null;
        try {
            for (ApiAnalyzer a : extensions.getAnalyzers().keySet()) {
                analyzeWith(a, analysisContext.getOldApi(), analysisContext.getNewApi(), extensions);
            }
        } catch (Exception t) {